//
//  NavigationHelper.h
//  FreshToHome
//
//  Created by lzh on 2017/11/16.
//  Copyright © 2017年 Facebook. All rights reserved.
//

#import <Foundation/Foundation.h>


#define RouteToPage(aPageClassStr) [NavigationHelper routeTo:aPageClassStr];

#define RouteToPageWithInfo(aPageClassStr, info) [NavigationHelper routeTo:aPageClassStr withInfo:info];

#define RouteToPageWithInfoRemoveVC(aPageClassStr, info, theRemoveVC) [NavigationHelper routeTo:aPageClassStr withInfo:info removeVC:theRemoveVC];

#define RoutePop [NavigationHelper pop];



@protocol NavigationModel <NSObject>

@property (nonatomic, strong) id intentData;

@end

@interface NavigationHelper : NSObject

+ (UINavigationController*)currentNavi;

#pragma mark - push 操作
+ (void)routeTo:(NSString*)classStr;
+ (void)routeTo:(NSString*)classStr withInfo:(id) object;
+ (void)routeTo:(NSString*)classStr withInfo:(id) object removeVC:(UIViewController*)vc;
+ (void)routeTo:(NSString*)classStr withInfo:(id) object removeVC:(UIViewController*)vc animated:(BOOL) animated;


//+ (void)routeToWebWithAction:(RequestAction*)action shareDomain:(ShareDomain*)shareDomain;
//
//+ (void)routeToWebWithAction:(RequestAction*)action shareDomain:(ShareDomain*)shareDomain removeVC:(UIViewController*)vc;

//+ (void)routeToWebWithAction:(RequestAction*)action;

#pragma mark - pop 操作
+ (void)pop;
+ (void)popWithAnimate:(BOOL)animate;
+ (void)popToRoot;
+ (void)popToRootWithAnimate:(BOOL)animate;
+ (void)popToVC:(NSString*)classStr;
+ (void)popToVC:(NSString*)classStr WithAnimate:(BOOL)animate;


#pragma mark - present

+ (void)presentVC:(NSString*)classStr withInfo:(id) object;

#pragma mark - current vc

+ (UIViewController*)visibleViewController;

+ (UIViewController*)rootTabViewController;


#pragma mark - other
///** 跳往让用户有效的页面*/
//+ (void)routeToValidateUser;
//
///** 跳往让用户有效的页面*/
//+ (void)routeToUserGuide;
//
//+ (void)routeToBindWeChatPhoneViewControllerWithOpenId:(NSString*)openId;


@end
